package com.waijiaojun.tpo.repository;

import com.waijiaojun.tpo.crawler.CategoryRefScenarioDto;
import com.waijiaojun.tpo.vo.ScenarioDetailVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

import com.waijiaojun.tpo.entity.Scenario;
import org.apache.ibatis.session.RowBounds;
import org.springframework.stereotype.Component;


@Mapper
@Component
public interface ScenarioDao {
    int insert(@Param("pojo") Scenario pojo);

    int insertSelective(@Param("pojo") Scenario pojo);

    int insertList(@Param("pojos") List<Scenario> pojo);

    int update(@Param("pojo") Scenario pojo);

    ScenarioDetailVo findVoById(@Param("openid") String openid, @Param("scenarioId") Long scenarioId);

    Long findQuestionNumberById(@Param("scenarioId") Long scenarioId);

    Scenario findById(@Param("scenarioId") Long scenarioId);

    void updateCategoryId(@Param("pojo") CategoryRefScenarioDto dto);

    Long findAllCount(@Param("categoryId") String categoryId, @Param("search") String search);

    List<Scenario> findAll(@Param("categoryId") String categoryId, @Param("order") String order, @Param("sort") String sort, @Param("search") String search, RowBounds rowBounds);

    void delete(@Param("id") Long id);

    List<Scenario> findAllScenario();

    void updateAudioUrlForOss(@Param("id") Long id, @Param("audioUrl") String audioUrl, @Param("oldAudioUrl") String oldAudioUrl);

    void updateCoverUrlForOss(@Param("id") Long id, @Param("coverUrl") String s, @Param("oldCoverUrl") String coverUrl);

    void updateByTpoName(Scenario scenario);

    Long findIdByTpoName(String tpo_name);
}
